<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Dhara: src/io.cc File Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Dhara
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="files.html"><span>File&#160;List</span></a></li>
      <li><a href="globals.html"><span>File&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#func-members">Functions</a>  </div>
  <div class="headertitle">
<div class="title">io.cc File Reference</div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><code>#include &lt;stdlib.h&gt;</code><br />
<code>#include &lt;string.h&gt;</code><br />
<code>#include &lt;stdio.h&gt;</code><br />
<code>#include &quot;<a class="el" href="main_8h_source.html">../include/main.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="parser_8h_source.html">../include/parser.h</a>&quot;</code><br />
</div><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ab52595c7230b8869a956e745c3992242"><td class="memTemplParams" colspan="2">template&lt;typename type &gt; </td></tr>
<tr class="memitem:ab52595c7230b8869a956e745c3992242"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="io_8cc.html#ab52595c7230b8869a956e745c3992242">SaveOutput1D</a> (const char *file, const char *dataname, type *data, nc_type nctype, int Nx, int write)</td></tr>
<tr class="separator:ab52595c7230b8869a956e745c3992242"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a44833dce92422d5aba84dfc6c9ebe0f3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8cc.html#a44833dce92422d5aba84dfc6c9ebe0f3">PrintUsage</a> (const char *appName)</td></tr>
<tr class="separator:a44833dce92422d5aba84dfc6c9ebe0f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fae5968f70747445d63f63065fb7ef3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8cc.html#a1fae5968f70747445d63f63065fb7ef3">PrintVersion</a> ()</td></tr>
<tr class="separator:a1fae5968f70747445d63f63065fb7ef3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aed17259f5bd71174ccfc20ed91316e3d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8cc.html#aed17259f5bd71174ccfc20ed91316e3d">CheckArgument</a> (const char *argName, int argc, char **argv)</td></tr>
<tr class="separator:aed17259f5bd71174ccfc20ed91316e3d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afb342eaf94dc0d169ac6731cde547f0d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8cc.html#afb342eaf94dc0d169ac6731cde547f0d">ExtractNumber</a> (int argIdx, int argc, char **argv)</td></tr>
<tr class="separator:afb342eaf94dc0d169ac6731cde547f0d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1fb8e2a162c61a792a4f6784ae7ceae2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8cc.html#a1fb8e2a162c61a792a4f6784ae7ceae2">LoadConfigMLCanModel</a> (<a class="el" href="class_project_class.html">ProjectClass</a> *project, <a class="el" href="class_file_name_class.html">FileNameClass</a> *files, <a class="el" href="class_switch_class.html">SwitchClass</a> *switches, <a class="el" href="class_constant_class.html">ConstantClass</a> *constants, <a class="el" href="class_canopy_class.html">CanopyClass</a> *canopies, <a class="el" href="class_soil_class.html">SoilClass</a> *soils, <a class="el" href="class_radiation_class.html">RadiationClass</a> *radiation, <a class="el" href="class_photosynthesis_class.html">PhotosynthesisClass</a> *photosynthesis, <a class="el" href="class_respiration_class.html">RespirationClass</a> *respiration, <a class="el" href="class_stoma_conduct_class.html">StomaConductClass</a> *stomaconduct, <a class="el" href="class_micro_environment_class.html">MicroEnvironmentClass</a> *microenviron)</td></tr>
<tr class="memdesc:a1fb8e2a162c61a792a4f6784ae7ceae2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads user configurations to MLCanmodel.  <a href="#a1fb8e2a162c61a792a4f6784ae7ceae2">More...</a><br /></td></tr>
<tr class="separator:a1fb8e2a162c61a792a4f6784ae7ceae2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a94d1be3f7a08fb71cc9a747e8bc9c597"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8cc.html#a94d1be3f7a08fb71cc9a747e8bc9c597">LoadFlowModelConfig</a> (<a class="el" href="class_project_class.html">ProjectClass</a> *project, <a class="el" href="class_file_name_class.html">FileNameClass</a> *files, <a class="el" href="class_overland_flow_class.html">OverlandFlowClass</a> *overland, <a class="el" href="class_subsurface_flow_class.html">SubsurfaceFlowClass</a> *subsurface)</td></tr>
<tr class="memdesc:a94d1be3f7a08fb71cc9a747e8bc9c597"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loads user configurations to flow model.  <a href="#a94d1be3f7a08fb71cc9a747e8bc9c597">More...</a><br /></td></tr>
<tr class="separator:a94d1be3f7a08fb71cc9a747e8bc9c597"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51a72364bba641ebdd8d5dfce24b3e13"><td class="memTemplParams" colspan="2">template&lt;typename Type &gt; </td></tr>
<tr class="memitem:a51a72364bba641ebdd8d5dfce24b3e13"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="io_8cc.html#a51a72364bba641ebdd8d5dfce24b3e13">LoadFileNetCDF</a> (const char *file_name, const char *var_name, Type *data)</td></tr>
<tr class="memdesc:a51a72364bba641ebdd8d5dfce24b3e13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load NetCDF file format.  <a href="#a51a72364bba641ebdd8d5dfce24b3e13">More...</a><br /></td></tr>
<tr class="separator:a51a72364bba641ebdd8d5dfce24b3e13"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a582f178161d87441eb604256d4da3d17"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8cc.html#a582f178161d87441eb604256d4da3d17">GetFileInfo</a> (const char *file_name, const char *var_name, int ndims, int *dim)</td></tr>
<tr class="memdesc:a582f178161d87441eb604256d4da3d17"><td class="mdescLeft">&#160;</td><td class="mdescRight">To extract information and dimension of NetCDF files.  <a href="#a582f178161d87441eb604256d4da3d17">More...</a><br /></td></tr>
<tr class="separator:a582f178161d87441eb604256d4da3d17"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5d43bf4e37ab8cd5eebd603b72ea5f9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8cc.html#aa5d43bf4e37ab8cd5eebd603b72ea5f9">ParsingCommandsAndConfigurations</a> (int argc, char **argv, const char *&amp;file_config, int rank, int procsize, <a class="el" href="class_project_class.html">ProjectClass</a> *&amp;project, <a class="el" href="class_file_name_class.html">FileNameClass</a> *&amp;files, <a class="el" href="classmpi_class.html">mpiClass</a> *&amp;mpiobj)</td></tr>
<tr class="memdesc:aa5d43bf4e37ab8cd5eebd603b72ea5f9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Parse command line arguments and read configuration file.  <a href="#aa5d43bf4e37ab8cd5eebd603b72ea5f9">More...</a><br /></td></tr>
<tr class="separator:aa5d43bf4e37ab8cd5eebd603b72ea5f9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a60d0bb17a56ea141fe870e514ef122f0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8cc.html#a60d0bb17a56ea141fe870e514ef122f0">LoadForcingData</a> (<a class="el" href="class_file_name_class.html">FileNameClass</a> *files, <a class="el" href="class_canopy_class.html">CanopyClass</a> *canopies, <a class="el" href="class_time_forcing_class.html">TimeForcingClass</a> *timeforcings, int rank, int procsize, int num_steps)</td></tr>
<tr class="memdesc:a60d0bb17a56ea141fe870e514ef122f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">load forcing data from NetCDF file.  <a href="#a60d0bb17a56ea141fe870e514ef122f0">More...</a><br /></td></tr>
<tr class="separator:a60d0bb17a56ea141fe870e514ef122f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa916afa39225dd0fa219a35bef364027"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8cc.html#aa916afa39225dd0fa219a35bef364027">LoadTopography</a> (<a class="el" href="class_file_name_class.html">FileNameClass</a> *files, <a class="el" href="class_overland_flow_class.html">OverlandFlowClass</a> *overland, int rank, int procsize)</td></tr>
<tr class="memdesc:aa916afa39225dd0fa219a35bef364027"><td class="mdescLeft">&#160;</td><td class="mdescRight">To load topography info from NetCDF file. Topography is only used for flow modling in GPU device through master process.  <a href="#aa916afa39225dd0fa219a35bef364027">More...</a><br /></td></tr>
<tr class="separator:aa916afa39225dd0fa219a35bef364027"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14463c5e17e08421310090a1352452dc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8cc.html#a14463c5e17e08421310090a1352452dc">SetCanopyGrid</a> (<a class="el" href="class_canopy_class.html">CanopyClass</a> *canopies, <a class="el" href="class_vertical_canopy_class.html">VerticalCanopyClass</a> *vertcanopies)</td></tr>
<tr class="memdesc:a14463c5e17e08421310090a1352452dc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set up canopy grid for simulation. Grid is constructed based on canopy height and the number of canopy layers specified by users. Uniform canopy grid is used.  <a href="#a14463c5e17e08421310090a1352452dc">More...</a><br /></td></tr>
<tr class="separator:a14463c5e17e08421310090a1352452dc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4d65faa4a43f499ccb15284cbe190027"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8cc.html#a4d65faa4a43f499ccb15284cbe190027">SetSoilGrid</a> (<a class="el" href="class_project_class.html">ProjectClass</a> *project, <a class="el" href="class_soil_class.html">SoilClass</a> *soils, <a class="el" href="class_vertical_soil_class.html">VerticalSoilClass</a> *vertsoils)</td></tr>
<tr class="separator:a4d65faa4a43f499ccb15284cbe190027"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae4e7123ba69ff3d9bbd373c5f9611b3e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8cc.html#ae4e7123ba69ff3d9bbd373c5f9611b3e">LoadCanopyRootDistributions</a> (<a class="el" href="class_project_class.html">ProjectClass</a> *project, <a class="el" href="class_canopy_class.html">CanopyClass</a> *canopies, <a class="el" href="class_vertical_canopy_class.html">VerticalCanopyClass</a> *vertcanopies, <a class="el" href="class_soil_class.html">SoilClass</a> *soils, <a class="el" href="class_vertical_soil_class.html">VerticalSoilClass</a> *vertsoils)</td></tr>
<tr class="memdesc:ae4e7123ba69ff3d9bbd373c5f9611b3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load canopy and root distribution from text files specified in configuration file. If more than one vegetation, distributions for each species must be provided.  <a href="#ae4e7123ba69ff3d9bbd373c5f9611b3e">More...</a><br /></td></tr>
<tr class="separator:ae4e7123ba69ff3d9bbd373c5f9611b3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9a3d44a1e7febaf3752ec753855e1de6"><td class="memTemplParams" colspan="2">template&lt;typename type &gt; </td></tr>
<tr class="memitem:a9a3d44a1e7febaf3752ec753855e1de6"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="io_8cc.html#a9a3d44a1e7febaf3752ec753855e1de6">SaveOutput3D</a> (const char *file, const char *dataname, type *data, nc_type nctype, int3 globsize, int write)</td></tr>
<tr class="memdesc:a9a3d44a1e7febaf3752ec753855e1de6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save 3D outputs to NetCDF files in double format.  <a href="#a9a3d44a1e7febaf3752ec753855e1de6">More...</a><br /></td></tr>
<tr class="separator:a9a3d44a1e7febaf3752ec753855e1de6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae69102f2601de3410e4598bf76acb389"><td class="memTemplParams" colspan="2">template&lt;typename type &gt; </td></tr>
<tr class="memitem:ae69102f2601de3410e4598bf76acb389"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="io_8cc.html#ae69102f2601de3410e4598bf76acb389">SaveOutput2D</a> (const char *file, const char *dataname, type *data, nc_type nctype, int My, int Nx, int write)</td></tr>
<tr class="memdesc:ae69102f2601de3410e4598bf76acb389"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save 2D outputs to NetCDF files in double format.  <a href="#ae69102f2601de3410e4598bf76acb389">More...</a><br /></td></tr>
<tr class="separator:ae69102f2601de3410e4598bf76acb389"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeb89d4afa6631f9265921329cb7f71fe"><td class="memTemplParams" colspan="2">template&lt;typename type &gt; </td></tr>
<tr class="memitem:aeb89d4afa6631f9265921329cb7f71fe"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="io_8cc.html#aeb89d4afa6631f9265921329cb7f71fe">SaveOutput1D</a> (const char *file, const char *dataname, type *data, nc_type nctype, const char *dimname, int Nx, int write)</td></tr>
<tr class="memdesc:aeb89d4afa6631f9265921329cb7f71fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Saves one-dimensional variables into a NetCDF file.  <a href="#aeb89d4afa6631f9265921329cb7f71fe">More...</a><br /></td></tr>
<tr class="separator:aeb89d4afa6631f9265921329cb7f71fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae64065afa343bdb3a9b5020b27995c4d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8cc.html#ae64065afa343bdb3a9b5020b27995c4d">SaveModelResults</a> (<a class="el" href="class_project_class.html">ProjectClass</a> *project, <a class="el" href="class_overland_flow_class.html">OverlandFlowClass</a> *overland_host, <a class="el" href="class_overland_flow_class.html">OverlandFlowClass</a> *overland_dev, <a class="el" href="class_subsurface_flow_class.html">SubsurfaceFlowClass</a> *subsurface_host, <a class="el" href="class_subsurface_flow_class.html">SubsurfaceFlowClass</a> *subsurface_dev, int3 globsize, int timestep)</td></tr>
<tr class="memdesc:ae64065afa343bdb3a9b5020b27995c4d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy to host and save 2D and 3D results to netcdf.  <a href="#ae64065afa343bdb3a9b5020b27995c4d">More...</a><br /></td></tr>
<tr class="separator:ae64065afa343bdb3a9b5020b27995c4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3c37b53ca5ead19edf630f1071285572"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8cc.html#a3c37b53ca5ead19edf630f1071285572">SaveMLCanResults</a> (<a class="el" href="class_project_class.html">ProjectClass</a> *project, <a class="el" href="class_output_class.html">OutputClass</a> *outmlcan, <a class="el" href="class_canopy_class.html">CanopyClass</a> *canopies, int num_steps, int rank, int procsize)</td></tr>
<tr class="memdesc:a3c37b53ca5ead19edf630f1071285572"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save MLCan results to netCDF for all processes.  <a href="#a3c37b53ca5ead19edf630f1071285572">More...</a><br /></td></tr>
<tr class="separator:a3c37b53ca5ead19edf630f1071285572"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a106808d5ba55a54cef12059a6af7f2cc"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="io_8cc.html#a106808d5ba55a54cef12059a6af7f2cc">SaveResultEntirePeriod</a> (<a class="el" href="class_project_class.html">ProjectClass</a> *project, <a class="el" href="class_canopy_class.html">CanopyClass</a> *canopies, <a class="el" href="class_subsurface_flow_class.html">SubsurfaceFlowClass</a> *subsurface_host, <a class="el" href="class_output_class.html">OutputClass</a> *outmlcan, int rank, int procsize, int3 globsize, MPI_Comm *cartComm)</td></tr>
<tr class="memdesc:a106808d5ba55a54cef12059a6af7f2cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save mean results for entire simulation period.  <a href="#a106808d5ba55a54cef12059a6af7f2cc">More...</a><br /></td></tr>
<tr class="separator:a106808d5ba55a54cef12059a6af7f2cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="aed17259f5bd71174ccfc20ed91316e3d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int CheckArgument </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>argName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>argv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="afb342eaf94dc0d169ac6731cde547f0d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int ExtractNumber </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>argIdx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>argv</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Extract a number given as a command-line argument</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">argIdx</td><td>Argument index in command line </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">argc</td><td>The number of input arguments </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">argv</td><td>The input arguments </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>Value of the the argument </dd></dl>

</div>
</div>
<a class="anchor" id="a582f178161d87441eb604256d4da3d17"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void GetFileInfo </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>var_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>ndims</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int *&#160;</td>
          <td class="paramname"><em>dim</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>To extract information and dimension of NetCDF files. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">file_name</td><td>NetCDF file </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">var_name</td><td>Variable inspecting </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">ndims</td><td>Number of dimension of the vars </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">dim</td><td>Dimension of the vars </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae4e7123ba69ff3d9bbd373c5f9611b3e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void LoadCanopyRootDistributions </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_project_class.html">ProjectClass</a> *&#160;</td>
          <td class="paramname"><em>project</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_canopy_class.html">CanopyClass</a> *&#160;</td>
          <td class="paramname"><em>canopies</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_vertical_canopy_class.html">VerticalCanopyClass</a> *&#160;</td>
          <td class="paramname"><em>vertcanopies</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_soil_class.html">SoilClass</a> *&#160;</td>
          <td class="paramname"><em>soils</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_vertical_soil_class.html">VerticalSoilClass</a> *&#160;</td>
          <td class="paramname"><em>vertsoils</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load canopy and root distribution from text files specified in configuration file. If more than one vegetation, distributions for each species must be provided. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">canopies</td><td>Class including variables in canopy </td></tr>
    <tr><td class="paramname">vertcanopies</td><td>Canopy classes including vertical variables </td></tr>
    <tr><td class="paramname">soils</td><td>Class including variables in soil </td></tr>
    <tr><td class="paramname">vertsoils</td><td>Soil classes including vertical variables </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1fb8e2a162c61a792a4f6784ae7ceae2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void LoadConfigMLCanModel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_project_class.html">ProjectClass</a> *&#160;</td>
          <td class="paramname"><em>project</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_file_name_class.html">FileNameClass</a> *&#160;</td>
          <td class="paramname"><em>files</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_switch_class.html">SwitchClass</a> *&#160;</td>
          <td class="paramname"><em>switches</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_constant_class.html">ConstantClass</a> *&#160;</td>
          <td class="paramname"><em>constants</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_canopy_class.html">CanopyClass</a> *&#160;</td>
          <td class="paramname"><em>canopies</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_soil_class.html">SoilClass</a> *&#160;</td>
          <td class="paramname"><em>soils</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_radiation_class.html">RadiationClass</a> *&#160;</td>
          <td class="paramname"><em>radiation</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_photosynthesis_class.html">PhotosynthesisClass</a> *&#160;</td>
          <td class="paramname"><em>photosynthesis</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_respiration_class.html">RespirationClass</a> *&#160;</td>
          <td class="paramname"><em>respiration</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_stoma_conduct_class.html">StomaConductClass</a> *&#160;</td>
          <td class="paramname"><em>stomaconduct</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_micro_environment_class.html">MicroEnvironmentClass</a> *&#160;</td>
          <td class="paramname"><em>microenviron</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Loads user configurations to MLCanmodel. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">project</td><td>Class including project info </td></tr>
    <tr><td class="paramname">files</td><td>Class including filename info </td></tr>
    <tr><td class="paramname">switches</td><td>Class including switch info </td></tr>
    <tr><td class="paramname">constants</td><td>Class including constant info </td></tr>
    <tr><td class="paramname">canopies</td><td>Class including canopy variables </td></tr>
    <tr><td class="paramname">soils</td><td>Class including soil variables </td></tr>
    <tr><td class="paramname">radiation</td><td>Class including radiation variables </td></tr>
    <tr><td class="paramname">photosynthesis</td><td>Class including photosynthesis variables </td></tr>
    <tr><td class="paramname">respiration</td><td>Class including respiration variables </td></tr>
    <tr><td class="paramname">stomaconduct</td><td>Class including stomaconductance variables </td></tr>
    <tr><td class="paramname">microenviron</td><td>Class including microenrivonment variables </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a51a72364bba641ebdd8d5dfce24b3e13"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename Type &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void LoadFileNetCDF </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>var_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Type *&#160;</td>
          <td class="paramname"><em>data</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load NetCDF file format. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">file_name</td><td>NetCDF file name </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">var_name</td><td>Variable name </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">data</td><td>Data assigned </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a94d1be3f7a08fb71cc9a747e8bc9c597"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void LoadFlowModelConfig </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_project_class.html">ProjectClass</a> *&#160;</td>
          <td class="paramname"><em>project</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_file_name_class.html">FileNameClass</a> *&#160;</td>
          <td class="paramname"><em>files</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_overland_flow_class.html">OverlandFlowClass</a> *&#160;</td>
          <td class="paramname"><em>overland</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_subsurface_flow_class.html">SubsurfaceFlowClass</a> *&#160;</td>
          <td class="paramname"><em>subsurface</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Loads user configurations to flow model. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">project</td><td>Class including project info </td></tr>
    <tr><td class="paramname">files</td><td>Class including filename info </td></tr>
    <tr><td class="paramname">overland</td><td>Overland flow class </td></tr>
    <tr><td class="paramname">subsurface</td><td>Subsurface flow class </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a60d0bb17a56ea141fe870e514ef122f0"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void LoadForcingData </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_file_name_class.html">FileNameClass</a> *&#160;</td>
          <td class="paramname"><em>files</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_canopy_class.html">CanopyClass</a> *&#160;</td>
          <td class="paramname"><em>canopies</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_time_forcing_class.html">TimeForcingClass</a> *&#160;</td>
          <td class="paramname"><em>timeforcings</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>rank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>procsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>num_steps</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>load forcing data from NetCDF file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">files</td><td>NetCDF file </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">canopies</td><td>The canopies </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">timeforcings</td><td>Forcings time class </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">rank</td><td>Global rank of the current MPI process </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">procsize</td><td>Total number of MPI processes available </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">num_steps</td><td>The number of timesteps </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa916afa39225dd0fa219a35bef364027"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void LoadTopography </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_file_name_class.html">FileNameClass</a> *&#160;</td>
          <td class="paramname"><em>files</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_overland_flow_class.html">OverlandFlowClass</a> *&#160;</td>
          <td class="paramname"><em>overland</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>rank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>procsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>To load topography info from NetCDF file. Topography is only used for flow modling in GPU device through master process. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">files</td><td>NetCDF file </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">overland</td><td>Overland flow class </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">rank</td><td>Global rank of the current MPI process </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">procsize</td><td>Total number of MPI processes available </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aa5d43bf4e37ab8cd5eebd603b72ea5f9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void ParsingCommandsAndConfigurations </td>
          <td>(</td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>argc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>argv</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&amp;&#160;</td>
          <td class="paramname"><em>file_config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>rank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>procsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_project_class.html">ProjectClass</a> *&amp;&#160;</td>
          <td class="paramname"><em>project</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_file_name_class.html">FileNameClass</a> *&amp;&#160;</td>
          <td class="paramname"><em>files</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classmpi_class.html">mpiClass</a> *&amp;&#160;</td>
          <td class="paramname"><em>mpiobj</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Parse command line arguments and read configuration file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">rank</td><td>Global rank of the current MPI process </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">size</td><td>The total number of MPI processes available </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">globsize</td><td>Size of the entire domain </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">domsize</td><td>Size of local domain in each MPI </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">topolsize</td><td>The desired topology size of MPI </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a44833dce92422d5aba84dfc6c9ebe0f3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PrintUsage </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>appName</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a1fae5968f70747445d63f63065fb7ef3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void PrintVersion </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a3c37b53ca5ead19edf630f1071285572"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SaveMLCanResults </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_project_class.html">ProjectClass</a> *&#160;</td>
          <td class="paramname"><em>project</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_output_class.html">OutputClass</a> *&#160;</td>
          <td class="paramname"><em>outmlcan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_canopy_class.html">CanopyClass</a> *&#160;</td>
          <td class="paramname"><em>canopies</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>num_steps</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>rank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>procsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Save MLCan results to netCDF for all processes. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">project</td><td>Class including project info </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">outmlcan</td><td>Class including output for MLCan model </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">canopies</td><td>Class including canopy variables </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">num_steps</td><td>The number of timesteps for simulation </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">rank</td><td>Global rank of the current MPI process </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">procsize</td><td>Total number of MPI processes available </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae64065afa343bdb3a9b5020b27995c4d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SaveModelResults </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_project_class.html">ProjectClass</a> *&#160;</td>
          <td class="paramname"><em>project</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_overland_flow_class.html">OverlandFlowClass</a> *&#160;</td>
          <td class="paramname"><em>overland_host</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_overland_flow_class.html">OverlandFlowClass</a> *&#160;</td>
          <td class="paramname"><em>overland_dev</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_subsurface_flow_class.html">SubsurfaceFlowClass</a> *&#160;</td>
          <td class="paramname"><em>subsurface_host</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_subsurface_flow_class.html">SubsurfaceFlowClass</a> *&#160;</td>
          <td class="paramname"><em>subsurface_dev</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int3&#160;</td>
          <td class="paramname"><em>globsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>timestep</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copy to host and save 2D and 3D results to netcdf. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">project</td><td>Class including project info </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">overland_host</td><td>Overland flow class in host memory </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">overland_dev</td><td>Overland flow class in device memory </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">subsurface_host</td><td>Subsurface flow class in host memory </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">subsurface_dev</td><td>Subsurface flow class in device memory </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">globsize</td><td>Size of the global domain </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">timestep</td><td>Current time step </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ab52595c7230b8869a956e745c3992242"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void SaveOutput1D </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>dataname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">type *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">nc_type&#160;</td>
          <td class="paramname"><em>nctype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Nx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>write</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="aeb89d4afa6631f9265921329cb7f71fe"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void SaveOutput1D </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>dataname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">type *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">nc_type&#160;</td>
          <td class="paramname"><em>nctype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>dimname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Nx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>write</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Saves one-dimensional variables into a NetCDF file. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>File will be saved in NetCDF format </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">dataname</td><td>Variable name saved </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">data</td><td>The dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nctype</td><td>NetCDF data type used </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">dimname</td><td>Name of dimension in netcdf </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">Nx</td><td>The length data </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">write</td><td>Option to decide write new or append</td></tr>
  </table>
  </dd>
</dl>
<dl class="tparams"><dt>Template Parameters</dt><dd>
  <table class="tparams">
    <tr><td class="paramname">type</td><td>{ description } </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae69102f2601de3410e4598bf76acb389"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void SaveOutput2D </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>dataname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">type *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">nc_type&#160;</td>
          <td class="paramname"><em>nctype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>My</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>Nx</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>write</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Save 2D outputs to NetCDF files in double format. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>File will be saved in NetCDF format </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">dataname</td><td>Variable name saved </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">data</td><td>The dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">nctype</td><td>NetCDF data type used </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">My</td><td>Data dimension in y </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">Nx</td><td>Data dimension in x </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">write</td><td>Option to decide write new or append </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a9a3d44a1e7febaf3752ec753855e1de6"></a>
<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename type &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void SaveOutput3D </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>file</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>dataname</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">type *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">nc_type&#160;</td>
          <td class="paramname"><em>nctype</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int3&#160;</td>
          <td class="paramname"><em>globsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>write</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Save 3D outputs to NetCDF files in double format. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">file</td><td>File will be saved in NetCDF format </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">dataname</td><td>Variable name saved </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">data</td><td>The dataset </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">globsize</td><td>Size of global computational domain </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">write</td><td>Option to decide write new or append </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a106808d5ba55a54cef12059a6af7f2cc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SaveResultEntirePeriod </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_project_class.html">ProjectClass</a> *&#160;</td>
          <td class="paramname"><em>project</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_canopy_class.html">CanopyClass</a> *&#160;</td>
          <td class="paramname"><em>canopies</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_subsurface_flow_class.html">SubsurfaceFlowClass</a> *&#160;</td>
          <td class="paramname"><em>subsurface_host</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_output_class.html">OutputClass</a> *&#160;</td>
          <td class="paramname"><em>outmlcan</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>rank</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>procsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int3&#160;</td>
          <td class="paramname"><em>globsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">MPI_Comm *&#160;</td>
          <td class="paramname"><em>cartComm</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Save mean results for entire simulation period. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir"></td><td class="paramname">project</td><td>Class including project info </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">canopies</td><td>Class including canopy variables </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">subsurface_host</td><td>Subsurface flow class in host memory </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">outmlcan</td><td>Class including output for MLCan model </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">rank</td><td>Global rank of the current MPI process </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">procsize</td><td>Total number of MPI processes available </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">globsize</td><td>Size of the global domain </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">cartComm</td><td>The cartesian communications </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a14463c5e17e08421310090a1352452dc"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SetCanopyGrid </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_canopy_class.html">CanopyClass</a> *&#160;</td>
          <td class="paramname"><em>canopies</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_vertical_canopy_class.html">VerticalCanopyClass</a> *&#160;</td>
          <td class="paramname"><em>vertcanopies</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Set up canopy grid for simulation. Grid is constructed based on canopy height and the number of canopy layers specified by users. Uniform canopy grid is used. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">canopies</td><td>Class including variables in canopy </td></tr>
    <tr><td class="paramname">vertcanopies</td><td>Canopy classes including vertical variables </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a4d65faa4a43f499ccb15284cbe190027"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SetSoilGrid </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="class_project_class.html">ProjectClass</a> *&#160;</td>
          <td class="paramname"><em>project</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_soil_class.html">SoilClass</a> *&#160;</td>
          <td class="paramname"><em>soils</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="class_vertical_soil_class.html">VerticalSoilClass</a> *&#160;</td>
          <td class="paramname"><em>vertsoils</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.11
</small></address>
</body>
</html>
